1. Field
The present disclosure relates generally to networks and, in particular, to nodes in a data network. Still more particularly, the present disclosure relates to a method and apparatus for mapping dependencies between network services and/or applications associated with a data network.
2. Background
A data network is a communications network that allows devices to exchange data. An Internet Protocol (IP) network is a data network that uses the Internet Protocol suite to send and receive data. The Internet Protocol suite is the computer networking model and set of communications protocols used on the Internet and similar computer networks. The different types of communications protocols in the Internet Protocol suite that may be used include the Internet Protocol (IP), the Transfer Control Protocol (TCP), the User Datagram Protocol (UDP), and other types of protocols. An Internet Protocol network may be implemented using any number of Internet networks, local area networks (LAN), enterprise networks, or other types of networks.
Oftentimes, Internet Protocol networks are based on a client-service model. With a client-service model, a client generates and sends a request to a service and the service handles the request and sends a response back to the client. The clients and services that communicate over an Internet Protocol network may be referred to as nodes. Some Internet Protocol networks may include only nodes that use the Transfer Control Protocol.
Data networks and, in particular, Internet Protocol networks are becoming larger and more complex. Consequently, there is a pressing need for tools to aid network administrators and designers in managing and operating these types of networks. For example, a tool capable of mapping dependencies between services and/or applications in such networks may be desirable. A dependency between a first service (or application) and a second service (or application) may occur, for example, when the first service (or application) is reliant upon the second service (or application) to fulfill a request received by the first service (or application).
Some conventional tools are capable of identifying service (or application) dependencies. However, these currently available tools may be unable to visually represent a chain of dependencies across multiple services (or applications). Conventional visualization tools are primitive, including open-source graphical user interfaces (e.g., Gephi, NetworkX, Graphviz, graph-tool, NodeXL), and these conventional tools support drawing edges between two nodes, effectively visualizing relationships between only two hosts. However, conventional tools do not capture any dependence among multiple nodes or temporal aspects. Consequently, network administrators using conventional tools can only observe an instantaneous snapshot of network conditions between pairs of nodes, which is insufficient to properly diagnose network disruptions or to schedule maintenance without disturbing normal operations, as most of such disruptions are complex and involve dependencies across more than two nodes.
Therefore, it would be desirable to have a method and apparatus that take into account at least some of the issues discussed above, as well as other possible issues.